package com.hisense.ovcloud.asop.entity.db.def;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

// Auto generate by mybatis-flex, do not modify it.
public class DeviceModuleTableDef extends TableDef {

    public static final DeviceModuleTableDef DEVICE_MODULE = new DeviceModuleTableDef();

    public final QueryColumn PUID = new QueryColumn(this, "puid");

    public final QueryColumn STATUS = new QueryColumn(this, "status");

    public final QueryColumn WIFIID = new QueryColumn(this, "wifiid");

    public final QueryColumn BRANDID = new QueryColumn(this, "brandid");

    public final QueryColumn GROUPID = new QueryColumn(this, "groupid");

    public final QueryColumn IP_ADDR = new QueryColumn(this, "ip_addr");

    public final QueryColumn BINDDATE = new QueryColumn(this, "binddate");

    public final QueryColumn DEVICEID = new QueryColumn(this, "deviceid");

    public final QueryColumn DEVICECODE = new QueryColumn(this, "devicecode");

    public final QueryColumn DEVICENAME = new QueryColumn(this, "devicename");

    public final QueryColumn PLATFORMID = new QueryColumn(this, "platformid");

    public final QueryColumn FEATURECODE = new QueryColumn(this, "featurecode");

    public final QueryColumn LANGUAGE_ID = new QueryColumn(this, "language_id");

    public final QueryColumn VIRTUALDEVICE = new QueryColumn(this, "virtualdevice");

    public final QueryColumn DEVICEMODULEID = new QueryColumn(this, "devicemoduleid");

    public final QueryColumn DEVICETYPECODE = new QueryColumn(this, "devicetypecode");

    public final QueryColumn SHDEVICETYPECODE = new QueryColumn(this, "shdevicetypecode");

    public final QueryColumn COMMODULETYPECODE = new QueryColumn(this, "commoduletypecode");

    public final QueryColumn ISFACTORYBINDFLAG = new QueryColumn(this, "isfactorybindflag");

    /**
     * 所有字段。
     */
    public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{PUID, STATUS, WIFIID, BRANDID, GROUPID, IP_ADDR, BINDDATE, DEVICEID, DEVICECODE, DEVICENAME, PLATFORMID, FEATURECODE, LANGUAGE_ID, VIRTUALDEVICE, DEVICEMODULEID, DEVICETYPECODE, SHDEVICETYPECODE, COMMODULETYPECODE, ISFACTORYBINDFLAG};

    public DeviceModuleTableDef() {
        super("", "devicemodule");
    }

    private DeviceModuleTableDef(String schema, String name, String alisa) {
        super(schema, name, alisa);
    }

    public DeviceModuleTableDef as(String alias) {
        String key = getNameWithSchema() + "." + alias;
        return getCache(key, k -> new DeviceModuleTableDef("", "devicemodule", alias));
    }

}
